package string_0923;

/**
 * String StringBuilder StringBuffer区别
 * 1.String的内容不无法修改，StringBuilder StringBuffer的对象可以修改，因此我们一般在字符串对象频繁修改的时候使用StringBuilder或StringBuffer类
 *StringBuilder StringBuffer的用法完全一致，StringBuffer采用同步处理，线程安全，效率低。
 * StringBuilder采用异步处理，线程不安全，效率高，开发中若不考虑线程安全问题，一般推荐使用StringBuilder类
 *
 *String->StringBuilder对象转换
 * a.通过StringBuilder类的构造方法
 * b.通过StringBuilder类的append()方法
 * 调用append方法在当前对象的后面追加任何数据类型
 * (javac编译器其实也会将String+=操作优化为StringBuilder类的append操作！)
 *
 * StringBuilder->String对象转换
 * 调用toString()方法
 * String ret =sb1.toString()
 */
public class StringBuilderTest {
    public static void main(String[] args) {
        String str="abc";
        String str1="bcs";
                str.compareTo(str1);
        //String类变为StringBuilder类
        //方法一
        StringBuilder sb=new StringBuilder(str);
        //方法二
        StringBuilder sb1=new StringBuilder();
        sb1.append(str);
        //StringBuilder类变为String
        sb1.append("123");//append类似于+=
        String ret =sb1.toString();//将StringBuilder类转换成String类
        System.out.println(ret);//abc123
    }
}
